#include<stdio.h>
#include<string.h>
#include<stdlib.h>

// compare two strings
// 1 =
// 0 !=
int cmp_str(const char *s1, const char *s2) {
    // s1 abcdefg
    // s2 bcd
    int i = 0;
    while (s2[i] != '\0') {
        printf("s1[%d]=%c s2[%d]=%c\n", i, s1[i], i, s2[i]);
        if(s1[i] != s2[i])
            return 0;
        i++;
    }
    return 1;
}

int doubao(const char *a, const char *b) {
     int len1 = strlen(a);
    int len2 = strlen(b);
    for (int i = 0; i <= len1 - len2; i++) {
       int j;
       for (j = 0; j < len2; j++) {
        printf("s1[%d]=%c s2[%d]=%c\n", i+j, a[i+j], j, b[j]);
          if (a[i + j]!= b[j]) {
             break;
          }
       }
       if (j == len2) { // 完全匹配
          return i + 1;
       }
    }
    return -1;
}

int find_str(const char *a, const char *b) {
    int i = 0, len1, len2;
    len1 = strlen(a);
    len2 = strlen(b);
    while (len1 - i >= len2) {
        if (cmp_str(a + i, b) == 1) {
            return i + 1;
        }
        i++;
    }
    return -1;
}

// 最简洁的方法
int test(const char *a, const char *b) {
    char* p = strstr(a, b);
    if (p == NULL) {
        return -1;
    } else {
        int cnt = p - a + 1;
        return cnt;
    }
}

int main() {
    // char s1[100], s2[100];
    // scanf("%s", s1);
    // scanf("%s", s2);
    // printf("%d\n", doubao(s1, s2));
    int a = 10;
    int *x = &a;
    int arr[] = {10, 20, 39, 44, 50};
    printf("%d\n", *x); // 取指针地址里面的值 10
    printf("%p\n", x); // 取内存地址 0x7ff7b84f9588
    printf("%p\n", arr); // 取内存地址
    printf("%d\n", *(arr+1)); // 取数组第一个元素
    return 0;
}